library(stringi)
library(kormaps2014)
library(tidyverse)
library(googledrive)
library(mapproj)
library(ggiraphExtra)
library(data.table)
library(readxl)
library(patchwork)
library(gridExtra)
library(maps)
library(ggthemes)
library(gganimate)
library(httr)
library(jsonlite)
library(glue)
theme_set(theme_bw())
## 전체 인구
population <- read_xls("population_x.xls")
population <- population[,c(1,8)]
colnames(population) <- c("행정구역별_읍면동", "총인구수")
population <- population[-c(1:2),]
korpop2020 <- korpop1 %>%
left_join(population) %>%
select(C행정구역별_읍면동, 행정구역별_읍면동, 시점, C행정구역별, code, 총인구수) %>%
rename(pop2020 = 총인구수, name = 행정구역별_읍면동)
korpop2020$시점 <- 2020
korpop2020$pop2020 <- as.numeric(korpop2020$pop2020)
ggChoropleth(data = korpop2020, # 지도에 표현할 데이터
aes(fill = pop2020, # 색깔로 표현할 변수
map_id = code, # 지역 기준 변수
tooltip = name), # 지도 위에 표시할 지역명
map = kormap1, # 지도 데이터
interactive = T)
## 코로나 확진자
corona_0301 <- read_xlsx("corona19_kr_20200301.xlsx")
corona_0301 <- corona_0301 %>%
select(구분, `확진환자 (명)`) %>%
filter(!구분 %in% c(NA,"합계", "검역"))
colnames(tbc)[1] <- "구분"
tbc_unique <- tbc %>%
select(구분, name) %>%
unique()
corona_0301 <- corona_0301 %>%
left_join(tbc_unique) %>%
select(name, `확진환자 (명)`)
kor_pop_corona <- korpop2020 %>%
left_join(corona_0301) %>%
rename(pop_corona = `확진환자 (명)`)
kor_pop_corona$pop_corona <- as.numeric(kor_pop_corona$pop_corona)
ggChoropleth(data = kor_pop_corona, # 지도에 표현할 데이터
aes(fill = pop_corona, # 색깔로 표현할 변수
map_id = code, # 지역 기준 변수
tooltip = name), # 지도 위에 표시할 지역명
map = kormap1, # 지도 데이터
interactive = T)
kor_pop_corona_2 <- kor_pop_corona %>%
gather(key = "case", value = "pops", `pop2020`,`pop_corona`)
ggplot(data = kor_pop_corona_2) +
geom_col(aes(x = name, y = pops, fill = pops))

ggplot(data = kor_pop_corona_2) +
geom_col(aes(x = name, y = pops, fill = pops,
group = case)) +
facet_wrap(~case)

###
corona_flow <- read_xlsx("corona19-kr.xlsx")
corona_flow_2 <- corona_flow %>%
filter(location != "검역" & state1 == "확진") %>%
rename(Day = "datetime(kst)") %>%
group_by(Day, location, state1) %>%
summarise(count = sum(count))
p <- corona_flow_2 %>%
ggplot(aes(Day, count, group = location, color = factor(location))) +
geom_line() +
scale_color_viridis_d() +
labs(x = "날짜", y = "확진자 수(26일 이후)") +
theme(legend.position = "top")
p + geom_point() +
geom_text( aes(y = count+1,label=paste0(location, " (",count,"명)")), size=3, vjust=-1) +
transition_reveal(Day)

####
library(readr)
library(dplyr)
url_csv <- 'https://raw.githubusercontent.com/d4tagirl/R-Ladies-growth-maps/master/rladies.csv'
rladies <- read_csv(url(url_csv)) %>%
select(-1)
library(DT)
datatable(rladies, rownames = FALSE,
options = list(pageLength = 5))
world <- ggplot() +
borders("world", colour = "gray85", fill = "gray80") +
theme_map()
map <- world +
geom_point(aes(x = lon, y = lat, size = followers),
data = rladies,
colour = 'purple', alpha = .5) +
scale_size_continuous(range = c(1, 8),
breaks = c(250, 500, 750, 1000)) +
labs(size = 'Followers')
korea <- map_data("world", region = c("South Korea"))
data(world.cities)
Lat_lon_fun <- function(addr) {
data_list <-
GET(url = 'https://dapi.kakao.com/v2/local/search/address.json',
query = list(query = addr),
add_headers(Authorization = paste0("KakaoAK ", "2ecacbafd523802f293b245103346b06"))) %>%
content(as = 'text') %>%
fromJSON()
lon_lat_df <- data.frame(location = addr, long = data_list$documents$x, lat = data_list$documents$y)
return(lon_lat_df)
}
location_list <- corona_0301$name
location_long_lat <- map_dfr(location_list, function(x) {
Lat_lon_fun(x)
})
asdf <- cbind(corona_0301, location_long_lat[,-1]) %>%
rename(pop = `확진환자 (명)`)
asdf$pop <- as.numeric(asdf$pop)
asdf$long <- as.numeric(asdf$long)
asdf$lat <- as.numeric(asdf$lat)
# ggplot() +
# geom_polygon(data=korea, aes(x=long, y=lat, group=group, fill=region)) +
# geom_point(data=korea.pop, aes(x=long, y=lat, size = pop), shape = 16, color = "green", alpha = 0.4) +
# scale_size_area(max_size=10)
ggplot() +
geom_polygon(data=korea, aes(x=long, y=lat, group=group, fill=region)) +
geom_point(data=asdf, aes(x=long, y=lat, size = pop), shape = 16, color = "green", alpha = 0.4) +
scale_size_area(max_size=30) +
geom_text(data=asdf, aes(x=long+0.2, y=lat+0.2, label=name))

#
# map_less_frames <- world +
# geom_point(aes(x = lon, y = lat, size = est_followers,
# frame = date),
# data = rladies_less_frames, colour = 'purple', alpha = .5) +
# geom_point(aes(x = lon, y = lat, size = est_followers,
# frame = date),
# data = ghost_points_ini, alpha = 0) +
# geom_point(aes(x = lon, y = lat, size = est_followers,
# frame = date),
# data = ghost_points_fin, colour = 'purple', alpha = .5) +
# # scale_size_continuous(range = c(1, 8), breaks = c(250, 500, 750, 1000)) +
# labs(size = 'Followers')
#
# ani.options(interval = .15)
# gganimate(map_less_frames)
#
#
# # write.csv(location_long_lat,file="location_long_lat.csv")
# world <- ggplot() +
# borders("world", colour = "gray85", fill = "gray80") +
# theme_map()
#
# map <- world +
# geom_point(aes(x = lon, y = lat, size = followers),
# data = rladies,
# colour = 'purple', alpha = .5) +
# scale_size_continuous(range = c(1, 8),
# breaks = c(250, 500, 750, 1000)) +
# labs(size = 'Followers')